package com.xbongbong.sys.model;/*/*/

import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.sys.domain.entity.CompanyEntity;

import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 *
 * @author 魏荣杰
 * @date 2019/2/14 10:06
 * @since v1.0
 * @version v1.0
 */
public interface CompanyModel extends IModel<CompanyEntity> {


    Integer deleteByKey(String key);

    CompanyEntity getByKey(String key);


    /**
     * Description: 根据公司id批量获取公司
     * @param corpidIn 公司ids
     * @return java.util.List<com.xbongbong.sys.domain.entity.CompanyEntity>
     * @author 魏荣杰
     * @date 2019/2/14 10:07
     * @since v1.0
     */
    List<CompanyEntity> getCompanyList(List<String> corpidIn);

    /**
     * Description: 根据公司id获取正常状态的公司
     * @param corpid  公司id
     * @return com.xbongbong.sys.domain.entity.CompanyEntity
     * @author 魏荣杰
     * @date 2019/2/14 10:08
     * @since v1.0
     */
    CompanyEntity getNormalCompanyByKey(String corpid);

    /**
     * Description:查出某个公司ID对应的公司数据，不管del字段是1还是0
     * @param corpid 公司id
     * @return com.xbongbong.sys.domain.entity.CompanyEntity
     * @author 魏荣杰
     * @date 2019/2/14 10:10
     * @since v1.0
     */
    CompanyEntity getByKeyIgnoreDel(String corpid);


    Integer getEndTime(Map<String, Object> param);

    //所有订阅销帮帮的钉钉客户列表
    List<Map<String,Object>> companyStatic(Map<String, Object> param);

    //每天新增企业数量
    List<Map<String,Object>> companyTotalNumDay(Map<String, Object> param);

    //每天新增企业数量
    List<Map<String,Object>> companyTotalNumHour(Map<String, Object> param);

    List<Map<String,Object>> findFeeCompanyEntitys(Map<String, Object> param);
    /**
     * 根据公司名称获取公司id列表
     * @param corpNameLike 模糊搜索的公司名称
     * @return 公司id队列
     *
     * @author 章华隽
     * 创建时间：2018/4/3 上午11:24
     * 修改时间：
     * @version 3.20
     * @since 3.20
     */
    List<String> getCorpIdByCorpNameLike(String corpNameLike);


    /**
     * 更新单个公司的company表数据
     *
     * @param updateCorpid
     * @param suiteTokenPerm
     * @author kaka
     * @time 2016年7月27日 下午3:01:56
     */
    CompanyEntity updateCompanyInfo(String updateCorpid, String suiteTokenPerm);

    List<String> getCorpidList();

    List<String> getCorpidListByStatus();

    List<String> getJxcCorpidList();

    List<String> getJxcCorpidListByActive();

    /**
     * 获取没有配置钉钉待办的公司corpid
     *
     * @param configAlias
     * @author xingxing.xiao
     * @date 2019/09/26 10:04
     */
    List<String> getCorpidListNotInCompanyConfig(String configAlias);

    /**
     * 查询公司列表
     *
     * @param param 参数
     * @return java.util.List<com.xbongbong.sys.domain.entity.CompanyEntity>
     * @author 徐俊杰
     * @date 2019/12/17 14:24
     * @since v1.0
     */
    @Override
    List<CompanyEntity> findEntitys(Map<String, Object> param);

    /**
     * 批量根据公司id获取公司id-公司名称map
     *
     * @param corpidIn 公司idIn
     * @return java.util.Map<java.lang.Long,java.lang.String>
     * @throws
     * @author 徐俊杰
     * @date 2019/9/21 14:28
     * @since v1.0
     */
    Map<String, String> getCorpIdNameMap(Collection<String> corpidIn);

    /**
     * 临时获取进销存公司
     * @author 阮思程
     * @date 2022/1/11 09:28
     */
    List<String> getJxcCorpidListTemporary();
    /**
     * 临时批量插入进销存公司
     * @author 阮思程
     * @date 2022/1/11 09:28
     */
    void insertBatch(List<String> subList);

    /**
     * 获取有效期内公司
     */
    List<String> getCorpidListByActive();
}
